在計(jì)算機(jī)網(wǎng)絡(luò)中,一個(gè)基本的反向代理位于一組服務(wù)器和想要使用它們的客戶端之間。客戶端是可以向服務(wù)器提交請(qǐng)求的任何硬件或軟件——例如,您的 Web 瀏覽器是您用于閱讀本文的客戶端,它托管在我們的服務(wù)器上。反向代理處理從客戶端到服務(wù)器的所有請(qǐng)求,它還將所有響應(yīng)和服務(wù)從服務(wù)器傳遞回客戶端。從客戶的角度來(lái)看,這使它看起來(lái)好像一切都來(lái)自一個(gè)地方。
組織和企業(yè)使用反向代理來(lái)鞏固他們的互聯(lián)網(wǎng)存在。根據(jù)您的配置方式,反向代理可以在單個(gè)服務(wù)器中提供多種功能之一。它的一部分是接待員,將傳入的請(qǐng)求引導(dǎo)到正確的部門,另一部分是保鏢,讓侵入性的眼睛遠(yuǎn)離您的內(nèi)部基礎(chǔ)設(shè)施。
正向代理與反向代理
一個(gè)代理服務(wù)器(或“轉(zhuǎn)發(fā)代理”)作為您和您所選擇的服務(wù)器之間的中介。代理為您轉(zhuǎn)發(fā)連接——它傳遞您的請(qǐng)求,接收來(lái)自您正在使用的站點(diǎn)和服務(wù)的回復(fù),然后將它們發(fā)送給您。相反,反向代理接收來(lái)自另一個(gè)網(wǎng)絡(luò)上的客戶端的請(qǐng)求,將其傳遞給內(nèi)部服務(wù)器,接收結(jié)果,然后將其中繼回客戶端。這就是代理如何工作的基礎(chǔ):它們?cè)诳蛻舳撕头?wù)器之間來(lái)回傳遞數(shù)據(jù)。換句話說(shuō),對(duì)于任何試圖區(qū)分正向代理和反向代理的人來(lái)說(shuō),反向代理與代理完全相同,只是反向代理:正向代理代表客戶端,而反向代理代表客戶端服務(wù)器。
反向代理有什么用途?
反向代理位于客戶端和網(wǎng)絡(luò)服務(wù)(例如網(wǎng)站)之間。反向代理提供的三個(gè)最重要的功能是安全性、負(fù)載平衡和易于維護(hù)。反向代理也可以在身份品牌塑造和優(yōu)化中發(fā)揮作用。
加強(qiáng)網(wǎng)絡(luò)安全
您可以創(chuàng)建和配置反向代理,以根據(jù)客戶端請(qǐng)求的性質(zhì)將請(qǐng)求轉(zhuǎn)發(fā)到一個(gè)或多個(gè)內(nèi)部服務(wù)器。如果它是一個(gè)網(wǎng)站,一個(gè) URL 可能由您的客戶支持頁(yè)面提供,而另一個(gè) URL 可能會(huì)進(jìn)入您的購(gòu)物車。反向代理僅轉(zhuǎn)發(fā)您想要服務(wù)的請(qǐng)求。如果您只提供 Web 內(nèi)容,請(qǐng)將反向代理配置為排除端口 80 和 443(分別負(fù)責(zé) HTTP 和 HTTPS 的默認(rèn)端口)以外的所有請(qǐng)求。這使您可以根據(jù)類型轉(zhuǎn)移流量,這也意味著 ne'er-do-wells 不能直接攻擊您的內(nèi)部服務(wù)。您還可以將反向代理升級(jí)為防火墻,這是一種具有額外功能或額外安全功能的代理服務(wù)器。
反向代理負(fù)載均衡
如果過(guò)多的互聯(lián)網(wǎng)流量使您的系統(tǒng)變慢,您可以使用負(fù)載平衡,將您的流量分配到一臺(tái)或多臺(tái)服務(wù)器上以提高整體性能。負(fù)載平衡使您可以用更具彈性的集群替換單個(gè)過(guò)度工作的后端服務(wù)。此技術(shù)還確保您的應(yīng)用程序不再有單點(diǎn)故障。如果一臺(tái)服務(wù)器出現(xiàn)故障,它的兄弟姐妹可以接管。這只是很好的常識(shí)。反向代理可以使用一種稱為循環(huán) DNS的技術(shù)來(lái)引導(dǎo)請(qǐng)求通過(guò)內(nèi)部服務(wù)器的輪換列表。它很粗糙,但出奇的有效。如果您的要求越來(lái)越高,您可以切換到包含負(fù)載平衡功能的更復(fù)雜的設(shè)置。
改善網(wǎng)站維護(hù)
當(dāng)您的內(nèi)部服務(wù)對(duì)公眾隱藏時(shí),刪除服務(wù)、添加新服務(wù)、升級(jí)服務(wù)或回滾服務(wù)會(huì)更容易。這使得改進(jìn)對(duì)客戶和專業(yè) IT 人員的壓力都減輕了。與其升級(jí)您唯一的電子商務(wù)網(wǎng)站并祈禱它仍然可以正常工作,不如將另一臺(tái)服務(wù)器與新版本一起在線。然后,配置您的代理以將新客戶會(huì)話定向到新服務(wù)器。一旦你確定它有效,關(guān)閉舊的。由于用戶正在與您的代理交談,而不是直接與那些內(nèi)部服務(wù)交談,因此他們不會(huì)注意到這種變化。
此過(guò)程也適用于負(fù)載平衡的服務(wù)器。升級(jí)其中一個(gè),測(cè)試,然后依次升級(jí)其余的。反向代理意味著永遠(yuǎn)不會(huì)接到凌晨 3 點(diǎn)的電話,因?yàn)槟?IT 部門需要從備份中恢復(fù)您的舊網(wǎng)站。
身份品牌
企業(yè)通常使用自己網(wǎng)絡(luò)之外的外部服務(wù)來(lái)托管其網(wǎng)站的內(nèi)容管理系統(tǒng)或購(gòu)物車應(yīng)用程序。您可以使用反向代理來(lái)隱藏該詳細(xì)信息,而不是告訴網(wǎng)站訪問(wèn)者您將他們發(fā)送到另一個(gè) URL 進(jìn)行付款。反向代理可以隱藏提供客戶體驗(yàn)組件的外部供應(yīng)商的存在,例如您的云服務(wù)提供商。
緩存常用數(shù)據(jù)以提高性能
如果您提供大量靜態(tài)內(nèi)容,例如圖像和視頻,您可以設(shè)置反向代理來(lái)緩存一些內(nèi)容。這樣做可以減輕您內(nèi)部服務(wù)的壓力。
反向代理真的安全嗎?
添加一個(gè)受歡迎的安全層,反向代理可以有效地保護(hù)系統(tǒng)免受 Web 漏洞的影響。反向代理位于外部客戶端和您的內(nèi)部服務(wù)之間,防止任何人直接訪問(wèn)您的網(wǎng)絡(luò)。您暴露的 IT 基礎(chǔ)架構(gòu)越少,黑客對(duì)您的重要專有數(shù)據(jù)或客戶數(shù)據(jù)的吸引力就越小。
這降低了攻擊的風(fēng)險(xiǎn)有兩個(gè)原因:
- 您的服務(wù)器受到更好的保護(hù),免受不良行為者的侵害。
- 喜歡易于破解的網(wǎng)站的黑客會(huì)發(fā)現(xiàn)您的網(wǎng)站更安全并繼續(xù)前進(jìn)。
因?yàn)榉聪虼沓洚?dāng)您的網(wǎng)絡(luò)存在的面孔,所以它可以代表您的所有內(nèi)部服務(wù)器托管證書(shū)并處理 SSL 協(xié)商。這意味著您不需要管理多個(gè)證書(shū),也不需要對(duì)內(nèi)部網(wǎng)絡(luò)進(jìn)行加密。
為了獲得更高的安全性,請(qǐng)構(gòu)建一個(gè)互聯(lián)網(wǎng)防火墻,它實(shí)際上只是一個(gè)帶有額外牙齒和多疑心的代理。您可以將基本的反向代理?yè)Q成添加防火墻功能的反向代理,而無(wú)需更改任何內(nèi)部服務(wù)的工作方式。